package com.wang.lotterysystem.service.impl;

import com.wang.lotterysystem.service.PictureService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Service
public class PictureServiceImpl implements PictureService {

    @Value("${pic.local-path}")
    private String path;//使用配置文件进行注入

    @Override
    public String savePicture(MultipartFile file) {
        //如果目录不存在,则创建目录
        File dir = new File(path);
        if (!dir.exists()){
            dir.mkdirs();
        }

        //获取文件名
        String fileName = file.getOriginalFilename();
        assert fileName != null;
        //断言文件名是否为空 (注: 如果断言条件不满足,程序会抛出AssertionError并终止执行)

        //获取文件后缀名
        //(substring返回从指定索引开始到末尾的子串)
        //(lastIndexOf返回指定字符最后一次出现的位置)
        String suffixName = fileName.substring(fileName.lastIndexOf("."));//使用lastIndexOf的原因是为了防止后缀之前有.

        //生成随机文件名
        fileName = UUID.randomUUID() + suffixName;
        try {
            file.transferTo(new File(path + "/" + fileName));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return fileName;
    }
}
